Usb device

ABSTRACT

The invention concerns a method of configuring a system. The system comprises a main device and an auxiliary device. The main device and the auxiliary device are arranged to co-operate with each other. The main device is arranged to handle one or more functionalities. The auxiliary device is arranged to effect one or more functionalities. The method is characterised in that the method comprises an adaptation step, in which the auxiliary device is made to hide from the main device at least those of its functionalities that the main device cannot handle.

BACKGROUND OF INVENTION

1. Field of the Invention

The invention relates to a system comprising a first device arranged tocommunicate with a second device. The first device can be, for example,a USB host. The second device can be, for example, a USB device, whichcommunicates with the USB host via a USB bus using the USB protocol.

2. Background Art

The system comprises a USB host, which is connected to various USBdevices via a USB bus. The USB host communicates with the USB deviceswith the USB protocol. The USB protocol allows connecting several USBdevices on the same USB bus using a system of time-sharing based onaddressed devices. The USB protocol is organized as a master/slavearchitecture, the USB host is thus responsible of the time-sharingmanagement.

The USB host may comprise various applications. One or several servicesmay be needed to run an application. An application uses one or severaldrivers to access and use the associated services. The drivers may be onthe USB host.

The USB device may comprise various services, in particular those, whichare needed by the applications of the USB host. A service may beoffered, for example, at the device level (standard USB device), or atthe interface level (composite USB device).

The USB device is organized into several levels a device level, aconfiguration level, an interface level and an endpoint level. Eachlevel is represented by different USB descriptors:

-   -   A device descriptor describing the overall device. The device        descriptor may be associated to one or more configuration        descriptors.    -   A configuration descriptor describing the electrical        characteristics of the USB device, or of a part of the USB        device. The configuration descriptor may be associated to one or        more interface descriptors.    -   An interface descriptor describing a particular service of the        USB device. An interface may contain one or more alternate        settings. The interface descriptor may be associated to zero or        more endpoint descriptors.    -   An endpoint descriptor describing a communication channel used        by the service defined by the interface descriptor.

In a plugging step, the USB device is plugged onto a USB port of the USBhost.

In an enumeration step, all the USB descriptors are then retrieved fromthe USB device to the host device. The enumeration step is triggered offwith the modification of the voltage level on the line D+ or D−(depending on the USB device speed) due to a pull-up resistor present inthe USB device on one of the lines.

In a loading step, the USB Host then uses the descriptors to load allthe drivers of the USB device. The number of drivers loaded depends onthe number of different services present in the USB device. For example,if the USB device is at the same time a scanner and a printer the USBdevice will have to present two interfaces during the enumeration step.In that case, two drivers, one associated to the scanner interface, andthe other one associated to the printer interface, will be loaded. Amain driver associated to the device itself could also be loaded.

US 2001/0027500 discloses a data transmission system comprising a host,a controller connected to the host via a plug and play compatible bus,and a plurality of functions provided by the connected controller, thatexceed in number the maximum end points that the controller can support,wherein the controller selects a predetermined number of functions fromamong the plurality of functions and enumerates, as end points, thefunctions that match in number the maximum end points, and whereinthereafter, the controller replaces with a different function one of thefunctions that constitutes the end-points, and re-enumerates theendpoints.

SUMMARY OF INVENTION

An object of the invention is to reduce the costs

According to one aspect of the invention, a method of configuring asystem comprising a main device and an auxiliary device arranged toco-operate with each other, the main device being arranged to handle oneor more functionalities, the auxiliary device being arranged to effectone or more functionalities, characterised in that the method comprisesan adaptation step, in which the auxiliary device is made to hide fromthe main device at least those of its functionalities for which the maindevice is not arranged to handle.

The first device can be, for example, a USB host. The second device canbe, for example, a USB device. The functionalities for which the maindevice is not arranged to handle will be hidden from the main device. Inparticular, the invention allows to mass-produce auxiliary devicesarranged to effect the same standard set of functionalities. Thus theinvention allows a reduction of the costs.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a system comprising a USB host and a USB device.

FIG. 2 illustrates the structure of the USB device.

FIG. 3 illustrates a method of using the system; and

FIG. 4 illustrates a system comprising a USB host and a USB device.

FIG. 5 illustrates a method of using the system.

DETAILED DESCRIPTION

As illustrated in FIG. 1, the invention will be explained in the contextof a system using the USB protocol. The system comprises a USB host,which is connected to a USB device via a USB bus. The USB hostcommunicates with the USB devices with the USB protocol.

The communication between the USB host and the USB device can be madeaccording four different transfer modes:

-   -   a control transfer, offering mainly a delivery and data        integrity guarantee,    -   an interrupt transfer, offering mainly a periodicity and data        integrity guarantee,    -   a bulk transfer, offering mainly a data integrity guarantee, and        a possibly good data rate,    -   a isochronous transfer, offering mainly a bandwidth guarantee.

Two of these four modes require a bandwidth reservation, which isaccorded or not by the USB host after an enumeration phase, depending onthe bandwidth already reserved by other USB devices, which are pluggedonto the USB bus.

The USB host comprises various applications (A1, A2). One or severalservices (S1, S2) are needed to run an application (A1). The applicationA1 needs, for example, to use the service S1 and the service S2. Theservices (S1, S2, S3, S4) are located on the USB device. To use aspecific service S1, an application A1 may use a driver D1. The USB hostalso comprises a standard application (A0) associated with a standarddriver (D0). Advantageously the standard application (A0) is implementedon a big number of USB hosts.

The USB device comprises various services (S1, S2, S3 and S4) inparticular those (S1, S2, S3), which are needed by the applications (A1,A2) of the USB host. As illustrated in FIG. 2, a service (S) can beoffered, for example, at the device level, or at the interface level(S1,S2,S3,S4). The USB device also comprises a standard service (S0).Advantageously the standard service (S0) is implemented on a big numberof USB devices.

As illustrated in FIG. 3, in a connecting step CON, the USB device isconnected to a USB port of a USB host.

In a first checking step CHECK1, the USB device checks whether anegotiation flag is activated or not.

If not:

-   -   in a first enumerating step ENUM1, the USB host will enumerate        the USB device. In other words, as illustrated in FIG. 2, the        USB host will retrieve from the USB device to the USB host only        the descriptors (I) associated to the standard service S0,    -   in a loading step LOAD, the standard driver D0 is loaded into an        active memory of the host,    -   in a negotiation step NEG0, the standard application A0        negotiates the services (S1, S2, S3) to activate. The        negotiating step comprises the following sub-steps:        -   a receiving step, in which the standard application A0            receives from the standard service S0 a first list of all            the different services (S1, S2, S3, S4) which are available            on the USB device,        -   a comparing step, in which the standard application compares            the first list of all the different services (S1, S2, S3,            S4) which are available on the USB device with a second list            of the services (S1, S2, S3) needed by the applications            (A1,A2) of the USB host to deduce the services to be            activated (S1, S2, S3) on the USB device,        -   a service activating step, in which the USB device activates            the services to be activated, for example, by disconnecting            and reconnecting the USB device to the USB host.    -   In an flag activating step ACTIV, the negotiation flag is        activated.    -   In an initialization step INIT, the USB device removes its        pull-up resistor in order to detach itself and then re-attach        itself.

In a second checking step CHECK2, the USB device checks whether thenegotiation flag is activated or not.

If yes:

-   -   in a deactivating step DEACTIV, the negotiation flag is        deactivated,    -   in a second enumerating step ENUM2, the USB host enumerates the        USB device. As illustrated in FIG. 2, only the descriptors (II)        associated to the services (S1, S2, S3) which have been        activated and the descriptor associated to the standard service        (S0) will be retrieved,    -   in a second loading step LOAD2, the standard driver D0 and the        drivers associated to the services (S1, S2, S3) which have been        activated are loaded into the active memory of the USB host.

The USB device is now ready for use.

According to an advantage of the invention, if a new service has to beadded on the USB device, the standard service (S0) does not change andtherefore the standard application (A0) does not change. The inventionthus allows a reduction of the cost.

As illustrated in FIGS. 4 and 5, if the USB device is already plugged,and the user starts a new application (A3), which requires a new service(S4), which is not activated in the USB device, the standard application(A0) can negotiate the activation of the new service (S4) in a newnegotiating step.

In an opening step OPEN, user opens a new application (A3) requiring aservice (S4), which is not available in the current configuration of theUSB device.

In a negotiating step NEG0, the USB host activates the service (S4).

In a flag activating step ACTIV, the USB device activates thenegotiation flag.

In an initialization step INIT, the USB device removes its pull-upresistor in order to detach itself and then re-attach

In a checking step CHECK, the USB device checks whether the negotiationflag is activated or not.

If yes:

-   -   in a deactivating step DEACTIV, the negotiation flag is        deactivated,    -   in an enumerating step ENUM, the USB host enumerates the USB        device. As illustrated in FIG. 2, only the descriptors (III)        associated to the services (S1, S2, S3, S4) which have been        activated and the descriptor associated to the standard service        (S0) will be retrieved,    -   in a loading step LOAD, the standard driver D0 and the drivers        associated to the services (S1, S2, S3,S4) which have been        activated are loaded into the active memory of the USB host.

The device is ready for use.

The description hereinbefore illustrates the following features:

The invention concerns a method of configuring a system. The systemcomprises a main device and an auxiliary device. The main device and theauxiliary device are arranged to co-operate with each other. The maindevice is arranged to handle one or more functionalities. The auxiliarydevice is arranged to effect one or more functionalities. The method ischaracterised in that the method comprises an adaptation step, in whichthe auxiliary device is made to hide from the main device at least thoseof its functionalities that the main device cannot handle.

The first device can be, for example, a USB host in particular acomputer, a PDA or GSM.

The second device can be, for example, a USB device in particular asmart card or more generally any device that can be personalized, forexample, a PDA or GSM.

The USB device can be, for example, a Smart Card comprising threedifferent services:

-   -   Keys and rights management (APDU command transport) as service        [S0],    -   Document signature as service [S1],    -   Data streaming application (DRM) as service [S2].

The Smart Card can be used in different USB hosts non-exhaustivelylisted hereafter:

-   -   Corporate Personal Computers running Windows XP as environment        [E1],    -   Home Personal Computers running Windows XP as environment [E2],    -   GSM (also as USB On-The-Go device) as environment [E3],    -   PDA (as USB On-The-Go device) as environment [E4].

For all these USB hosts, the services that can be accessed could be:

-   -   [S0] and [S1] for [E1], because the user is not administrator of        the machine, and can not install a new driver,    -   [S0], [S1] and [S2] for [E2], because the user is administrator        of the machine and can install any service available,    -   [S0] only for [E3], for memory or consumption economy reasons,    -   [S0] only for [E4], because the host cannot be personalized and        only the driver for [S1] is available.

The services located on the USB device are not necessarily related tothe USB device itself. The services can be vendor specific or not. Forexample; a smartcard (USB device) may have a modem service, so that thesmartcard can be seen as a distant terminal through a modem connection.

It should be clear that the invention is not limited to devicescommunicating using the USB protocol. Other protocol like, for example,firewire based protocol may be used.

It should be clear that the invention is not limited to devicescommunicating according to a master/salve protocol.

In the comparing step, the first list of services and the second list ofservices have been used to deduce the services to be activated on theUSB device. More generally any other set of data defining the servicescan be used to deduce the services to be activated. It can be, forexample, a set of data identifying various services and giving thebandwidth needed by these services.

In the USB context, new USB Device Classes can be defined. All the USBhosts must contain default drivers for the defined classes. When a USBDevice Class is modified because, for example, some new functionality isadded, it is difficult to update all the USB hosts. The above-describedinvention allows adding some functionality to a device without having tomodify the Device Class, and so, without modifying the standard driversof the USB host.

1. A method of configuring a system comprising a main device and anauxiliary device arranged to co-operate with each other, the main devicebeing arranged to handle one or more functionalities, the auxiliarydevice being arranged to effect one or more functionalities, wherein themethod comprises an adaptation step, in which the auxiliary device hidesfrom the main device at least those of its functionalities for which themain device is not arranged to handle.
 2. The method according to claim1, wherein the adaptation step comprises the following sub-steps: anotification step, in which the auxiliary device notifies the maindevice of a set of data identifying the one or more functionalities thatthe auxiliary device can effect; a identification step, in which the setof data is used to identify the functionalities that the auxiliarydevice can effect but that the main device cannot handle; and aconfiguration step, in which the auxiliary device is configured to hidefrom the main device at least those of its functionalities that the maindevice cannot handle.
 3. The method according to claim 2, wherein theadaptation step is followed by an enumeration step, in which theauxiliary device presents itself to the main device without thefunctionalities identified in the identification step.
 4. The methodaccording to claim 1, wherein the adaptation step is carried outautomatically when connecting the auxiliary device to the main device.5. The method according to claim 3, wherein a simulation step is carriedout between the adaptation step and the enumeration step, in which thedisconnecting and the reconnecting of the auxiliary device is simulated.6. The method according to claim 1, wherein the main device is a USBhost and in that the auxiliary device is a USB device.
 7. The methodaccording to claim 1, wherein the auxiliary device is a smartcard.
 8. Asystem comprising a main device and an auxiliary device arranged toco-operate with each other, the main device being arranged to handle oneor more functionalities, the auxiliary device being arranged to effectone or more functionalities, wherein the auxiliary device is made tohide from the main device at least those of its functionalities forwhich the main device is not arranged to handle.
 9. An auxiliary devicecomprising functionality to cooperate with a main device, wherein themain device is arranged to handle one or more functionalities, theauxiliary device being arranged to effect one or more functionalities,wherein the auxiliary device is made to hide from the main device atleast those of its functionalities for which the main device is notarranged to handle.
 10. A computer program product for a data processingsystem, the computer program product comprising an instruction set whichwhen the instruction set is loaded in the data processing device, makesthe data processing device perform the steps of the method according toclaim 1.